import Vue from 'vue'
import Vuex from 'vuex';
import {getUserInfo,loginOut,getConfig} from "@/api/api.js";
/*vuex保存信息 app会报错 只能用于h5
*/ 
// #ifdef H5
import createPersistedState from 'vuex-persistedstate'
// #endif

import config from "@/api/config";
Vue.use(Vuex)
const store = new Vuex.Store({
    state:{
        hasLogin:false,//是否登录,
        user:"",//用户信息
        token:"",
        config:"",//基础配置信息
        openFlag:false,//开源提示开关
		navHeight:"",//微信导航栏高度
        navTop:"",//距离高度
        goodsImgWidth:400,//商品宽度图片
        goodsImgHeight:400,//商品图片高度
        imgType:'png',//图片后缀
        prePage:"",//上一页面路径
		
    },
    mutations:{
        //登录 
        login(state,user){
            state.hasLogin=true;
            state.user=user || null;
        },
        getToken(state,token){
            console.log(token)
            state.token=token;
        },
        // 登出
        getLogout(state){
			// #ifdef H5
			sessionStorage.clear();
			// #endif
            
            uni.clearStorageSync()
            uni.clearStorage()
            state.user="";
            state.hasLogin = false;
            state.token="";
			
        },
         /*更新用户信息*/ 
         getUserInfo(state,item){
            state.user=item;
            state.hasLogin=true;
        },
        // 更新配置信息
        updataConfig(state,item){
            state.config=item;
        },
		// 微信导航栏高度
		setnavHeight(state,item){
			state.navHeight=item.navHeight;
			state.navTop=item.navTop;
		},
        /*更新开源开关*/ 
        updateOpenFlag(state,item){
            state.openFlag=item;
        },
        /*更新上一页面路径*/ 
        updatePrePage(state,item){
            state.prePage=item;
        }
    },
    actions:{
        getUser(ctx,item){
            getUserInfo().then(res=>{
              
                if(!res.user_id){
                    uni.showToast({
                        icon:"none",
                        title: '登录失败',
                        duration: 3000,
                        
                    });
                    return 
                }
                if(res.head_pic.indexOf('public')==1){
                    res.head_pic=config.host+res.head_pic;
                }
                console.log(res)
                ctx.commit('getUserInfo',res)
            })
        },
        logout(ctx,item){ //登出
            loginOut().then(res=>{
                console.log(res)
                if(res.status==1){
                    ctx.commit('getLogout',res)
					uni.reLaunch({
					    url:"/pages/user/user/user",
					})
                }else{
                    uni.showToast({
                        icon:"none",
                        title: res.msg,
                        duration: 3000,
                        
                    });
                }
				
            })
        },
        // 配置信息
        getConfig(ctx,item){
            getConfig().then(res=>{
                console.log(res)
                ctx.commit('updataConfig',res)
            })
        },
        /*设置上一页面路径*/ 
        setPrePage(ctx,item){
            ctx.commit('updatePrePage',item)
        }
        
    },
	// #ifdef H5
    plugins: [createPersistedState()],
	// #endif
})

export default store